package config

import (
	"fmt"
	"log"

	"gorm.io/driver/mysql"
	"gorm.io/driver/sqlite"
	"gorm.io/gorm"
	"gorm.io/gorm/logger"
)

var DB *gorm.DB

func InitDB() {
	var err error

	if Cfg.DBType == "sqlite" {
		log.Printf("使用SQLite数据库: %s", Cfg.SQLite.DBPath)
		DB, err = gorm.Open(sqlite.Open(Cfg.SQLite.DBPath), &gorm.Config{
			Logger: logger.Default.LogMode(logger.Info),
		})
	} else {
		log.Printf("使用MySQL数据库: %s:%d/%s", Cfg.MySQL.Host, Cfg.MySQL.Port, Cfg.MySQL.DBName)
		DB, err = gorm.Open(mysql.Open(BuildDSN()), &gorm.Config{
			Logger: logger.Default.LogMode(logger.Info),
		})
	}

	if err != nil {
		panic(fmt.Errorf("数据库连接失败: %w", err))
	}

	log.Println("数据库连接成功")
}
